#ifndef DIJKSTRATEST_H
#define DIJKSTRATEST_H

#include <time.h>
#include <iostream>

#include <boost/config.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>
#include <boost/graph/dijkstra_shortest_paths_no_color_map.hpp>

#include "SimpleGraph.h"
#include "Generator.h"
#include "Helper.h"

namespace zbp
{
	double n_dijkstra_CompleteGraph_test(zbp::CompleteGraph<int> graph, bool display);
	double n_dijkstra_SimpleGraph_test(zbp::SimpleGraph graph, bool display);
	double n_dijkstra_boost_test(zbp::BoostEdge *edge_array, int *weights, int nodes_count, int edges_count, bool display);

	double dijkstra_CompleteGraph_test(int s, zbp::CompleteGraph<int> graph, bool display);
	double dijkstra_SimpleGraph_test(int s, zbp::SimpleGraph graph, bool display);
	double dijkstra_boost_test(int s, zbp::BoostEdge *edge_array, int *weights, int nodes_count, int edges_count, bool display);

	void dijkstra_tests_run(zbp::SimpleGraph simple_graph, zbp::CompleteGraph<int> complete_graph, zbp::BoostEdge* boost_edges, int* boost_weights, int nodes_count, int edges_count, int s);
}

#endif